import axios from "axios";

//封装一个axois请求类
//先设置通用的地址 Baseurl
export const baseURL = "http://interview-api-t.itheima.net/h5";

const instance = axios.create({
  baseURL: baseURL,
  timeout: 5000,
});

export class AxiosPro {
  static get(url, params) {
    return instance.get(url, { params });
  }
  static post(url, data) {
    return instance({
      method: "post",
      url,
      data,
    });
  }
  static saveAuth(token) {
    localStorage.setItem("token", token);
  }
}

// 添加请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 对请求数据做点什么
    const token = localStorage.getItem("token");
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  (error) => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
instance.interceptors.response.use(
  (response) => {
    // 对响应数据做点什么
    return response;
  },
  (error) => {
    // 对响应错误做点什么

    if (error.response?.status == 404) {
      console.log("未找到页面");
    } else if (error.response?.status == 401) {
      console.log("未登录");
    } else if (error.response?.status == 403) {
      console.log("权限不足");
    } else if (error.response?.status == 400) {
      console.log("请求参数错误");
    } else if (error.response?.status == 500) {
      console.log("服务器错误");
    } else {
      console.log(error);
    }
    return Promise.reject(error);
  }
);
